﻿<?php

/*
* Modelo: "reportes/valla.php"
*
* Realizado por:
*   Carlos Calvo
* 	Elisa Conesa
*/

@include_once('../enlaceBD.php');

class Operadoras {
	
	// Variable para los resultados de las Consultas
    private $respuesta;
	
	// Tablas del Modelo
    private $troitc_datos_ope 		= "roitc_datos_ope";
	private $troitc_asegu_ope 		= "roitc_asegu_ope";
	private $troitc_censo_ope 		= "roitc_censo_ope";
	private $troitc_cober_ope 		= "roitc_cober_ope";
	private $troitc_contr_flo 		= "roitc_contr_flo";
	private $troitc_contr_pes 		= "roitc_contr_pes";
	private $troitc_status 			= "roitc_status";
	private $troitc_status_ope 		= "roitc_status_ope";
	private $troitc_inscr_reg 		= "roitc_inscr_reg";
	private $troitc_tipo_car 		= "roitc_tipo_car";
	private $troitc_subti_car 		= "roitc_subti_car";
	private $taseguradora 			= "aseguradora";
	
	
    // =================================================================================================================
	// FUNCION - CONSULTAR RESULTADOS POR ASEGURADORAS DE LAS OPERADORAS
    // =================================================================================================================
	
    public function consultar_result_aseguradoras( $id_aseguradora, $fecha_inicio, $fecha_fin ) {
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_roitc'] );
		
		$fmt_fecha_inicio 	= $conexion->darFormatoFecha($fecha_inicio);
		$fmt_fecha_fin 		= $conexion->darFormatoFecha($fecha_fin);
		
		if ( $id_aseguradora != '' ) {
            $sql = "select t1.id_aseguradora as id_aseguradora, 
						t2.roitc as roitc, 
						t2.razon_social as razon_social 
					from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_asegu_ope as t1, 
						".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_ope as t2 
					where t1.roitc = t2.roitc and 
						t1.id_aseguradora = $id_aseguradora and ";
			
			if ( $fecha_inicio == $fecha_fin ) {
				$sql = $sql."t2.fecha_reg = $fmt_fecha_inicio";
			} else {
				$sql = $sql."t2.fecha_reg between $fmt_fecha_inicio and $fmt_fecha_fin";
			}
			
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar las Aseguradoras. (1)");
            
			$i = 0;
            while ( $temparray = $this->respuesta->buscar_fila() ) {
                $tiene = true;
                $lista_aseguradoras[$i][0] = $temparray['id_aseguradora'];
                $lista_aseguradoras[$i][1] = strtoupper($temparray['roitc']);
                $lista_aseguradoras[$i][2] = strtoupper($temparray['razon_social']);
                $i++;
            }
        	
		} else {
            $sql = "select t1.id_aseguradora as id_aseguradora, 
						t1.nombre_aseguradora as nombre_aseguradora 
					from ".$_SESSION['db_portal'].$_SESSION['schema_db'].".$this->taseguradora as t1 
					order by t1.id_aseguradora asc";
			
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar las Aseguradoras. (2)");
            
			$i = 0;
            while ( $temparray = $this->respuesta->buscar_fila() ) {
                $aux[$i++] = $temparray['id_aseguradora'];
                $lista_aseguradoras[array_search($temparray['id_aseguradora'],$aux)][0] = $temparray['id_aseguradora'];
                $lista_aseguradoras[array_search($temparray['id_aseguradora'],$aux)][1] = strtoupper($temparray['nombre_aseguradora']);
                $lista_aseguradoras[array_search($temparray['id_aseguradora'],$aux)][2] = 0;
            }
			
            $sql = "select t1.id_aseguradora as id_aseguradora, 
						count(t1.id_aseguradora) as tot 
					from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_asegu_ope as t1, 
						".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_ope as t2 
					where t1.roitc = t2.roitc and ";
			
            if ( $fecha_inicio == $fecha_fin ) {
				$sql = $sql."t2.fecha_reg = $fmt_fecha_inicio ";
			} else {
				$sql = $sql."t2.fecha_reg between $fmt_fecha_inicio and $fmt_fecha_fin ";
			}
			
            $sql = $sql."group by t1.id_aseguradora ";
			
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar las Aseguradoras. (3)");
            
            $tiene = false;
            while ( $temparray = $this->respuesta->buscar_fila() ) {
                if($temparray['tot'] != 0) $tiene = true;
                $lista_aseguradoras[array_search($temparray['id_aseguradora'],$aux)][2] = $temparray['tot'];
            }
        }
		
        $conexion->desconectar();
        return ($tiene) ? $lista_aseguradoras : $nada;
    }
	
	
	// =================================================================================================================
	// FUNCION - CONSULTAR RESULTADOS POR COBERTURAS DE LAS OPERADORAS
    // =================================================================================================================
	
    public function consultar_result_cobertura( $id_cobertura, $fecha_inicio, $fecha_fin ) {
       	$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_roitc'] );
		
		$fmt_fecha_inicio 	= $conexion->darFormatoFecha($fecha_inicio);
		$fmt_fecha_fin 		= $conexion->darFormatoFecha($fecha_fin);
		$lista_cober_ope 	= array();
		
		if ( $id_cobertura != '' ) {
            $sql = "select t1.roitc as roitc, 
						t1.razon_social as razon_social 
					from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_ope as t1, 
						".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_censo_ope as t2 
					where t1.roitc = t2.roitc and ";
			
            if ( $fecha_inicio == $fecha_fin ) {
				$sql = $sql."t1.fecha_reg = $fmt_fecha_inicio and ";
			} else {
				$sql = $sql."t1.fecha_reg between $fmt_fecha_inicio and $fmt_fecha_fin and ";
			}
            
			if ( strlen($id_cobertura) == 1 ) {
				if ( $id_cobertura != 1 ) {
					$id_cobertura = " ".$id_cobertura;
				}
			}
			
            $sql = $sql."t2.desc_cober_ope like '%$id_cobertura%'";
			
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar las Coberturas. (1)");
            
			$i = 0;
            while ( $temparray = $this->respuesta->buscar_fila() ) {
                $tiene = true;
				$lista_cober_ope[$i][0] = "";
                $lista_cober_ope[$i][1] = strtoupper($temparray['roitc']);
                $lista_cober_ope[$i][2] = strtoupper($temparray['razon_social']);
                $i++;
            }
			
        } else {
            $sql = "select id_cober_ope as id_cober_ope, 
						descripcion as descripcion 
					from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_cober_ope 
					order by id_cober_ope";
			
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar las Coberturas. (2)");
            
			while ( $temparray = $this->respuesta->buscar_fila() ) {
				$i = intval($temparray['id_cober_ope'])-1;
				$lista_cober_ope[$i][0] = $temparray['id_cober_ope'];
                $lista_cober_ope[$i][1] = strtoupper($temparray['descripcion']);
                $lista_cober_ope[$i][2] = 0;
            }
			
            $sql = "select t1.desc_cober_ope as desc_cober_ope 
					from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_censo_ope as t1, 
						".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_ope as t2 
					where t1.roitc = t2.roitc and ";
			
            if ( $fecha_inicio == $fecha_fin ) {
				$sql = $sql."t2.fecha_reg = $fmt_fecha_inicio";
			} else {
				$sql = $sql."t2.fecha_reg between $fmt_fecha_inicio and $fmt_fecha_fin";
			}
			
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar las Coberturas. (3)");
            
			$tiene = false;
            while ( $temparray = $this->respuesta->buscar_fila() ) {
                if($temparray['desc_cober_ope'] != "") $tiene = true;
                $valores = array();
                $valores = split(",", $temparray['desc_cober_ope']);
                foreach($valores as $val) {
                    $lista_cober_ope[intval($val)][2]++;
                }
            }
        }
		
        $conexion->desconectar();
        return ($tiene) ? $lista_cober_ope : $nada;
    }
	
	
	// =================================================================================================================
	// FUNCION - CONSULTAR RESULTADOS POR CONTROL DE PESO DE LAS OPERADORAS
    // =================================================================================================================
	
    public function consultar_result_control_peso( $id_control_peso, $fecha_inicio, $fecha_fin ) {
        $conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_roitc'] );
		
		$fmt_fecha_inicio 	= $conexion->darFormatoFecha($fecha_inicio);
		$fmt_fecha_fin 		= $conexion->darFormatoFecha($fecha_fin);
		
		if ( $id_control_peso != '' ) {
            $sql = "select t1.roitc as roitc, 
						t1.razon_social as razon_social 
					from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_ope as t1, 
						".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_censo_ope as t2 
					where t1.roitc = t2.roitc and ";
			
            if ( $fecha_inicio == $fecha_fin ) {
				$sql = $sql."t1.fecha_reg = $fmt_fecha_inicio and ";
			} else {
				$sql = $sql."t1.fecha_reg between $fmt_fecha_inicio and $fmt_fecha_fin and ";
			}
			
			if ( strlen($id_control_peso) == 1 ) {
				if ( $id_control_peso != 1 ) {
					$id_control_peso = " ".$id_control_peso;
				}
			}
			
            $sql = $sql."t2.desc_contr_pes like '%$id_control_peso%'";
			
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar los Controles de Peso. (1)");
            
			$i = 0;
            while ( $temparray = $this->respuesta->buscar_fila() ) {
                $tiene = true;
                $lista_contr_pes[$i][1] = strtoupper($temparray['roitc']);
                $lista_contr_pes[$i][2] = strtoupper($temparray['razon_social']);
                $i++;
            }
			
        } else {
            $sql = "select id_contr_pes as id_contr_pes, 
						descripcion as descripcion 
					from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_contr_pes 
					order by id_contr_pes";
			
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar los Controles de Peso. (2)");
            
			while ( $temparray = $this->respuesta->buscar_fila() ) {
                $lista_contr_pes[intval($temparray['id_contr_pes'])][0] = $temparray['id_contr_pes'];
                $lista_contr_pes[intval($temparray['id_contr_pes'])][1] = strtoupper($temparray['descripcion']);
                $lista_contr_pes[intval($temparray['id_contr_pes'])][2] = 0;
            }
			
            $sql = "select t1.desc_contr_pes as desc_contr_pes 
					from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_censo_ope as t1, 
						".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_ope as t2 
					where t1.roitc = t2.roitc and ";
			
            if ( $fecha_inicio == $fecha_fin ) {
				$sql = $sql."t2.fecha_reg = $fmt_fecha_inicio";
			} else {
				$sql = $sql."t2.fecha_reg between $fmt_fecha_inicio and $fmt_fecha_fin";
			}
			
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar los Controles de Peso. (3)");
            
			$tiene = false;
            while ( $temparray = $this->respuesta->buscar_fila() ) {
                if($temparray['desc_contr_pes'] != "") $tiene = true;
                $valores = array();
                $valores = split(",", $temparray['desc_contr_pes']);
                foreach($valores as $val) {
                    $lista_contr_pes[intval($val)][2]++;
                }
            }
        }
		
        $conexion->desconectar();
        return ($tiene) ? $lista_contr_pes : $nada;
    }
	
	
	// =================================================================================================================
	// FUNCION - CONSULTAR RESULTADOS POR CONTROL DE FLOTA DE LAS OPERADORAS
    // =================================================================================================================
	
    public function consultar_result_control_flota( $id_control_flota, $fecha_inicio, $fecha_fin ) {
        $conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_roitc'] );
		
		$fmt_fecha_inicio 	= $conexion->darFormatoFecha($fecha_inicio);
		$fmt_fecha_fin 		= $conexion->darFormatoFecha($fecha_fin);
		$tiene = false;
		
		if ( $id_control_flota != '' ) {
            $sql = "select t1.roitc as roitc, 
						t1.razon_social as razon_social 
					from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_ope as t1, 
						".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_censo_ope as t2 
					where t1.roitc = t2.roitc and ";
			
            if ( $fecha_inicio == $fecha_fin ) {
				$sql = $sql."t1.fecha_reg = $fmt_fecha_inicio and ";
			} else {
				$sql = $sql."t1.fecha_reg between $fmt_fecha_inicio and $fmt_fecha_fin and ";
			}
			
			if ( strlen($id_control_flota) == 1 ) {
				$id_control_flota = " ".$id_control_flota;
			}
			
            $sql = $sql."t2.desc_contr_flo like '%$id_control_flota%'";
			
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar los Controles de Flota. (1)");
            
			$i = 0;
            while ( $temparray = $this->respuesta->buscar_fila() ) {
                $tiene = true;
                $lista_contr_flo[$i][1] = strtoupper($temparray['roitc']);
                $lista_contr_flo[$i][2] = strtoupper($temparray['razon_social']);
                $i++;
            }
			
        } else {
            $sql = "select id_contr_flo as id_contr_flo, 
						descripcion as descripcion 
					from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_contr_flo 
					order by id_contr_flo";
			
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar los Controles de Flota. (2)");
			
            while ( $temparray = $this->respuesta->buscar_fila() ) {
                $lista_contr_flo[intval($temparray['id_contr_flo'])][0] = $temparray['id_contr_flo'];
                $lista_contr_flo[intval($temparray['id_contr_flo'])][1] = strtoupper($temparray['descripcion']);
                $lista_contr_flo[intval($temparray['id_contr_flo'])][2] = 0;
            }
			
            $sql = "select t1.desc_contr_flo as desc_contr_flo 
					from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_censo_ope as t1, 
						".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_ope as t2 
					where t1.roitc = t2.roitc and ";
			
            if ( $fecha_inicio == $fecha_fin ) {
				$sql = $sql."t2.fecha_reg = $fmt_fecha_inicio";
			} else {
				$sql = $sql."t2.fecha_reg between $fmt_fecha_inicio and $fmt_fecha_fin";
			}
			
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar los Controles de Flota. (3)");
            
            while ( $temparray = $this->respuesta->buscar_fila() ) {
                if($temparray['desc_contr_flo'] != "") $tiene = true;
                $valores = array();
                $valores = split(",", $temparray['desc_contr_flo']);
                foreach($valores as $val) {
                    $lista_contr_flo[intval($val)][2]++;
                }
            }
        }
		
        $conexion->desconectar();

		$nada = null;
        return ($tiene) ? $lista_contr_flo : $nada;
    }
	
	
	// =================================================================================================================
	// FUNCION - CONSULTAR RESULTADOS POR ESTATUS DE LAS OPERADORAS
    // =================================================================================================================
	
    public function consultar_result_status( $id_status, $fecha_inicio, $fecha_fin ) {
        $conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_roitc'] );
		
		$fmt_fecha_inicio 	= $conexion->darFormatoFecha($fecha_inicio);
		$fmt_fecha_fin 		= $conexion->darFormatoFecha($fecha_fin);
		
		$tiene = false;
		
		if ( $id_status != '' ) {
            $sql = "select t1.roitc as roitc, 
						t1.razon_social as razon_social 
					from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_ope as t1 
					where ";
			
            if ( $fecha_inicio == $fecha_fin ) {
				$sql = $sql."t1.fecha_reg = $fmt_fecha_inicio and ";
			} else {
				$sql = $sql."t1.fecha_reg between $fmt_fecha_inicio and $fmt_fecha_fin and ";
			}
			
            $sql = $sql."t1.id_status_ope = $id_status";
			
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar los Controles de Flota. (1)");
           	
		    $i = 0;
            while ( $temparray = $this->respuesta->buscar_fila() ) {
                $tiene = true;
                $lista_status_ope[$i][1] = strtoupper($temparray['roitc']);
                $lista_status_ope[$i][2] = strtoupper($temparray['razon_social']);
                $i++;
            }
			
        } else {
            $sql = "select id_status_ope as id_status_ope,
						descripcion as descripcion 
					from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_status 
					order by id_status_ope";
			
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar los Controles de Flota. (2)");
            
			while ( $temparray = $this->respuesta->buscar_fila() ) {
                $lista_status_ope[intval($temparray['id_status_ope'])][0] = $temparray['id_status_ope'];
                $lista_status_ope[intval($temparray['id_status_ope'])][1] = strtoupper($temparray['descripcion']);
                $lista_status_ope[intval($temparray['id_status_ope'])][2] = 0;
            }
			
            $sql = "select t1.id_status_ope as id_status_ope 
					from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_ope as t1 
					where ";
			
            if ( $fecha_inicio == $fecha_fin ) {
				$sql = $sql."t1.fecha_reg = $fmt_fecha_inicio";
			} else {
				$sql = $sql."t1.fecha_reg between $fmt_fecha_inicio and $fmt_fecha_fin";
			}
			
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar los Controles de Flota. (3)");
            
            while ( $temparray = $this->respuesta->buscar_fila()  ) {
                if($temparray['id_status_ope'] != "") $tiene = true;
                $lista_status_ope[intval($temparray['id_status_ope'])][2]++;
            }
        }
		
        $conexion->desconectar();

		$nada = null;
        return ($tiene) ? $lista_status_ope : $nada;
    }
	
	
	// =================================================================================================================
	// FUNCION - CONSULTAR RESULTADOS POR REGISTROS OTROS ENTES DE LAS OPERADORAS
    // =================================================================================================================
	
    public function consultar_result_registro( $id_registro, $fecha_inicio, $fecha_fin ) {
        $conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_roitc'] );
		
		$fmt_fecha_inicio 	= $conexion->darFormatoFecha($fecha_inicio);
		$fmt_fecha_fin 		= $conexion->darFormatoFecha($fecha_fin);
		
		if ( $id_registro != '' ) {
            $sql = "select t1.roitc as roitc, 
						t1.razon_social as razon_social 
					from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_ope as t1, 
						".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_censo_ope as t2 
					where t1.roitc = t2.roitc and ";
			
            if ( $fecha_inicio == $fecha_fin ) {
				$sql = $sql."t1.fecha_reg = $fmt_fecha_inicio and ";
			} else {
				$sql = $sql."t1.fecha_reg between $fmt_fecha_inicio and $fmt_fecha_fin and ";
			}
			
			if ( strlen($id_registro) == 1 ) {
				$id_registro = " ".$id_registro;
			}
			
            $sql = $sql."t2.desc_inscr_reg like '%$id_registro%'";
			
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar los Registros. (1)");
            
			$i = 0;
            while ( $temparray = $this->respuesta->buscar_fila() ) {
                $tiene = true;
				$lista_registros[$i][0] = "";
                $lista_registros[$i][1] = strtoupper($temparray['roitc']);
                $lista_registros[$i][2] = strtoupper($temparray['razon_social']);
                $i++;
            }
			
        } else {
            $sql = "select t1.id_inscr_reg as id_inscr_reg, 
						t1.descripcion as descripcion
					from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_inscr_reg as t1 
					order by t1.id_inscr_reg asc";
			
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar los Registros. (2)");
            
			$i = 0;
			while ( $temparray = $this->respuesta->buscar_fila() ) {
				$i = intval($temparray['id_inscr_reg'])-1;
                $lista_registros[$i][0] = $temparray['id_inscr_reg'];
                $lista_registros[$i][1] = strtoupper($temparray['descripcion']);
                $lista_registros[$i][2] = 0; // "cantidad"
				$lista_registros[$i]["cantidad"] = 0;
            }
			
            $sql = "select t1.desc_inscr_reg as desc_inscr_reg 
					from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_censo_ope as t1, 
						".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_ope as t2 
					where t1.roitc = t2.roitc and ";
			
            if ( $fecha_inicio == $fecha_fin ) {
				$sql = $sql."t2.fecha_reg = $fmt_fecha_inicio";
			} else {
				$sql = $sql."t2.fecha_reg between $fmt_fecha_inicio and $fmt_fecha_fin";
			}
			
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar los Registros. (3)");
           	
		    $tiene = false;
            while ( $temparray = $this->respuesta->buscar_fila() ) {
                if($temparray['desc_inscr_reg'] != "") $tiene = true;
                $valores = array();
                $valores = split(",", $temparray['desc_inscr_reg']);
                foreach($valores as $val) {
					$i = intval($val)-1;
                    $lista_registros[$i][2]++;
					$lista_registros[$i]["cantidad"]++;
                }
            }
        }
		
		$ordenar 	= "cantidad";
		$dir 		= 'DESC';
		
		usort($lista_registros, create_function('$item1, $item2', 'return strtoupper($item1[\'' . 
			$ordenar . '\']) ' . ($dir === 'ASC' ? '>' : '<') . ' strtoupper($item2[\'' . $ordenar . '\']);'));
		
        $conexion->desconectar();
        return ($tiene) ? $lista_registros : $nada;
    }
	
	
	// =================================================================================================================
	// FUNCION - CONSULTAR RESULTADOS POR TIPO DE CARGA DE LAS OPERADORAS
    // =================================================================================================================
	
    public function consultar_result_tipo_carga( $id_tipo_car, $fecha_inicio, $fecha_fin ) {
        $conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_roitc'] );
		
		$fmt_fecha_inicio 	= $conexion->darFormatoFecha($fecha_inicio);
		$fmt_fecha_fin 		= $conexion->darFormatoFecha($fecha_fin);
		
		if ( $id_tipo_car != '' ) {
            $sql = "select t1.roitc as roitc,
						t1.razon_social as razon_social 
					from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_ope as t1,
						".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_censo_ope as t2 
					where t1.roitc = t2.roitc and ";
			
            if ( $fecha_inicio == $fecha_fin ) {
				$sql = $sql."t1.fecha_reg = $fmt_fecha_inicio and ";
			} else {
				$sql = $sql."t1.fecha_reg between $fmt_fecha_inicio and $fmt_fecha_fin and ";
			}
			
			if ( strlen($id_tipo_car) == 1 ) {
				$id_tipo_car = " ".$id_tipo_car;
			}
			
            $sql = $sql."t2.desc_tipo_car like '%$id_tipo_car%'";
			
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar los Tipos de Carga. (1)");
            
			$j = 0;
            while ( $temparray = $this->respuesta->buscar_fila() ) {
                $tiene = true;
                $lista_tipo_carga[$j][1] = strtoupper($temparray['roitc']);
                $lista_tipo_carga[$j][2] = strtoupper($temparray['razon_social']);
                $j++;
            }
			
        } else {
            $sql = "select id_tipo_car as id_tipo_car, 
						descripcion as descripcion 
					from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_tipo_car 
					order by id_tipo_car";
			
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar los Tipos de Carga. (2)");
            
			while ( $temparray = $this->respuesta->buscar_fila() ) {
                $lista_tipo_carga[intval($temparray['id_tipo_car'])][0] = $temparray['id_tipo_car'];
                $lista_tipo_carga[intval($temparray['id_tipo_car'])][1] = strtoupper($temparray['descripcion']);
                $lista_tipo_carga[intval($temparray['id_tipo_car'])][2] = 0;
            }
			
            $sql = "select t1.desc_tipo_car as desc_tipo_car 
					from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_censo_ope as t1, 
						".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_ope as t2 
					where t1.roitc = t2.roitc and ";
			
            if ( $fecha_inicio == $fecha_fin ) {
				$sql = $sql."t2.fecha_reg = $fmt_fecha_inicio";
			} else {
				$sql = $sql."t2.fecha_reg between $fmt_fecha_inicio and $fmt_fecha_fin";
			}
			
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar los Tipos de Carga. (3)");
            
			$tiene = false;
            while ( $temparray = $this->respuesta->buscar_fila() ) {
                if($temparray['desc_tipo_car'] != "") $tiene = true;
                $valores = array();
                $valores = split(",", $temparray['desc_tipo_car']);
                foreach($valores as $val) {
                    $lista_tipo_carga[intval($val)][2]++;
                }
            }
        }
		
        $conexion->desconectar();
        return ($tiene) ? $lista_tipo_carga : $nada;
    }
	
	
	// =================================================================================================================
	// FUNCION - CONSULTAR RESULTADOS POR SUBTIPO DE CARGA DE LAS OPERADORAS
    // =================================================================================================================
	
    public function consultar_result_subtipo_carga( $id_subtipo_carga, $fecha_inicio, $fecha_fin ) {
        $conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_roitc'] );
		
		$fmt_fecha_inicio 	= $conexion->darFormatoFecha($fecha_inicio);
		$fmt_fecha_fin 		= $conexion->darFormatoFecha($fecha_fin);
		
		if ( $id_subtipo_carga != '' ) {
            $sql = "select t1.roitc as roitc,
						t1.razon_social as razon_social 
					from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_ope as t1,
						".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_censo_ope as t2 
					where t1.roitc = t2.roitc and ";
			
            if ( $fecha_inicio == $fecha_fin ) {
				$sql = $sql."t1.fecha_reg = $fmt_fecha_inicio and ";
			} else {
				$sql = $sql."t1.fecha_reg between $fmt_fecha_inicio and $fmt_fecha_fin and ";
			}
            
			if ( strlen($id_subtipo_carga) == 1 ) {
				$id_subtipo_carga = " ".$id_subtipo_carga;
			}
			
            $sql = $sql."t2.desc_subti_car like '%$id_subtipo_carga%'";
			
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar los Subtipos de Carga. (1)");
            
			$j = 0;
            while ( $temparray = $this->respuesta->buscar_fila() ) {
                $tiene = true;
                $lista_subtipo_carga[$j][1] = strtoupper($temparray['roitc']);
                $lista_subtipo_carga[$j][2] = strtoupper($temparray['razon_social']);
                $j++;
            }
			
        } else {
            $sql = "select id_subti_car as id_subti_car,
						descripcion as descripcion 
					from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_subti_car 
					order by id_subti_car";
			
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar los Subtipos de Carga. (2)");
            
			while ( $temparray = $this->respuesta->buscar_fila() ) {
                $lista_subtipo_carga[intval($temparray['id_subti_car'])][0] = $temparray['id_subti_car'];
                $lista_subtipo_carga[intval($temparray['id_subti_car'])][1] = strtoupper($temparray['descripcion']);
                $lista_subtipo_carga[intval($temparray['id_subti_car'])][2] = 0;
            }
			
            $sql = "select t1.desc_subti_car as desc_subti_car 
					from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_censo_ope as t1,
						".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_ope as t2 
					where t1.roitc = t2.roitc and ";
			
            if ( $fecha_inicio == $fecha_fin ) {
				$sql = $sql."t2.fecha_reg = $fmt_fecha_inicio";
			} else {
				$sql = $sql."t2.fecha_reg between $fmt_fecha_inicio and $fmt_fecha_fin";
			}
            
            $this->respuesta = $conexion->consultar($sql) 
				or die("No se pudo consultar los Subtipos de Carga. (3)");
            
			$tiene = false;
            while ( $temparray = $this->respuesta->buscar_fila() ) {
                if($temparray['desc_subti_car'] != "") $tiene = true;
                $valores = array();
                $valores = split(",", $temparray['desc_subti_car']);
                foreach($valores as $val) {
                    $lista_subtipo_carga[intval($val)][2]++;
                }
            }
        }
		
        $conexion->desconectar();
        return ($tiene) ? $lista_subtipo_carga : $nada;
    }
	
	
	// =================================================================================================================
	// FUNCION - CONSULTAR RESULTADOS POR HISTORICO DE LAS OPERADORAS
    // =================================================================================================================
	
    public function consultar_result_historico( $tipo_id, $id ) {
        $conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_roitc'] );
		
		$fmt_fecha	= $conexion->extraerCampoFecha('t2.fecha');
		
		$sql = "select t1.roitc as roitc,
					t1.razon_social,
					$fmt_fecha as fecha, 
					t2.observaciones as observaciones,
					t3.descripcion as descripcion ";
		
        if ( $tipo_id == "roitc_r" ) {
			
			$sql = $sql."from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_ope as t1,
							".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_status_ope as t2,
							".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_status as t3 
						where t1.roitc = t2.roitc and
							t2.id_status_ope = t3.id_status_ope and 
							t1.roitc = '$id'";
			
		} else if ( $tipo_id == "id_rif" ) {
			$id = split("_", $id);
			
			$sql = $sql."from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_ope as t1,
							".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_status_ope as t2,
							".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_status as t3 
						where t1.roitc = t2.roitc and
							t2.id_status_ope = t3.id_status_ope and 
							t1.id_tipo_identificacion = '".$id[0]."' and
							t1.nro_identificacion = '".$id[1]."' and
							t1.digito_rif = '".$id[2]."'";
			
		} else if ( $tipo_id == "id_placa" ) {
			
			$sql = $sql."from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_ope as t1,
							".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_status_ope as t2,
							".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_status as t3,
							".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_flo as t4 
						where t1.roitc = t2.roitc and
							t2.id_status_ope = t3.id_status_ope and 
							t1.roitc = t4.roitc and
							t4.placa = '$id'";
			
		} else if ( $tipo_id == "id_serial_carroceria" ) {
			
			$sql = $sql."from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_ope as t1,
							".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_status_ope as t2,
							".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_status as t3,
							".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_flo as t4 
						where t1.roitc = t2.roitc and
							t2.id_status_ope = t3.id_status_ope and
							t1.roitc = t4.roitc and
							t4.serial_carroceria = '$id'";
			
		} else if ( $tipo_id == "id_numero_identificacion" ) {
			$id = split("_", $id);
			
			$sql = $sql."from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_ope as t1,
							".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_status_ope as t2,
							".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_status as t3,
							".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_datos_rep as t4 
						where t1.roitc = t2.roitc and
							t2.id_status_ope = t3.id_status_ope and 
							t1.roitc = t4.roitc and
							t4.id_tipo_identificacion = '".$id[0]."' and
							t4.nro_identificacion = '".$id[1]."'
						group by t1.roitc, t2.fecha, t2.observaciones";
		}
		
		$sql = $sql." order by $fmt_fecha";
		
        $this->respuesta = $conexion->consultar($sql) 
			or die("No se pudo consultar el Histórico. (1)");
        
		$i = 0;
		$lista_historico = array();
        while($temparray = $this->respuesta->buscar_fila()) {
            $tiene = true;
            $lista_historico[$i][0] = strtoupper($temparray['roitc']);
            $lista_historico[$i][1] = strtoupper($temparray['razon_social']);
            $lista_historico[$i][2] = $temparray['fecha'];
            $lista_historico[$i][3] = strtoupper($temparray['observaciones']);
            $lista_historico[$i][4] = strtoupper($temparray['descripcion']);
            $i++;
        }
		
        $conexion->desconectar();
        return ($tiene) ? $lista_historico : $nada;
    }
	
	
    // =================================================================================================================
    //	FUNCION - CONSULTAR ASEGURADORA POR ID
    // =================================================================================================================
	
    public function consultar_aseguradora_por_id( $id_aseguradora ) {
        $conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_portal'] );
		
		$sql = "select id_aseguradora as id_aseguradora, 
					id_tipo_identificacion as id_tipo_identificacion, 
					nro_identificacion as nro_identificacion, 
					digito_rif as digito_rif, 
					nombre_aseguradora as nombre_aseguradora 
				from ".$_SESSION['db_portal'].$_SESSION['schema_db'].".$this->taseguradora 
				where id_aseguradora = $id_aseguradora";
		
        $this->respuesta = $conexion->consultar($sql) 
			or die("No se pudo consultar la Aseguradora.");
        
		$aseguradora = array();
		$temparray = $this->respuesta->buscar_fila();
			$aseguradora[0] = $temparray['id_aseguradora'];
			$aseguradora[1] = $temparray['id_tipo_identificacion'];
			$aseguradora[2] = trim($temparray['nro_identificacion']);
			$aseguradora[3] = trim($temparray['digito_rif']);
			$aseguradora[4] = strtoupper($temparray['nombre_aseguradora']);
		
        $conexion->desconectar();
        return $aseguradora;
    }
	
	
	// =================================================================================================================
    //	FUNCION - CONSULTAR COBERTURA POR ID
    // =================================================================================================================
	
    public function consultar_cobertura_por_id( $id_cobertura ) {
        $conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_roitc'] );
		
		$sql = "select id_cober_ope as id_cober_ope, 
					descripcion as descripcion 
				from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_cober_ope 
				where id_cober_ope = $id_cobertura";
		
        $this->respuesta = $conexion->consultar($sql) 
			or die("No se pudo consultar la Cobertura.");
        
		$cobertura = array();
		$temparray = $this->respuesta->buscar_fila();
			$cobertura[0] = $temparray['id_cober_ope'];
			$cobertura[1] = strtoupper($temparray['descripcion']);
		
        $conexion->desconectar();
        return $cobertura;
    }
	
	
	// =================================================================================================================
    //	FUNCION - CONSULTAR CONTROL DE PESO POR ID
    // =================================================================================================================
	
    public function consultar_control_peso_por_id( $id_control_peso ) {
        $conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_roitc'] );
		
		$sql = "select id_contr_pes as id_contr_pes, 
					descripcion as descripcion 
				from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_contr_pes 
				where id_contr_pes = $id_control_peso";
		
        $this->respuesta = $conexion->consultar($sql) 
			or die("No se pudo consultar el Control de Peso.");
        
		$control_peso = array();
		$temparray = $this->respuesta->buscar_fila();
			$control_peso[0] = $temparray['id_contr_pes'];
			$control_peso[1] = strtoupper($temparray['descripcion']);
		
        $conexion->desconectar();
        return $control_peso;
    }
	
	
	// =================================================================================================================
    //	FUNCION - CONSULTAR CONTROL DE FLOTA POR ID
    // =================================================================================================================
	
    public function consultar_control_flota_por_id( $id_control_flota ) {
        $conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_roitc'] );
		
		$sql = "select id_contr_flo as id_contr_flo, 
					descripcion as descripcion 
				from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_contr_flo 
				where id_contr_flo = $id_control_flota";
		
        $this->respuesta = $conexion->consultar($sql) 
			or die("No se pudo consultar el Control de Flota.");
        
		$control_flota = array();
		$temparray = $this->respuesta->buscar_fila();
			$control_flota[0] = $temparray['id_contr_flo'];
			$control_flota[1] = strtoupper($temparray['descripcion']);
		
        $conexion->desconectar();
        return $control_flota;
    }
	
	
	// =================================================================================================================
    //	FUNCION - CONSULTAR ESTATUS POR ID
    // =================================================================================================================
	
    public function consultar_status_por_id( $id_status ) {
        $conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_roitc'] );
		
		$sql = "select id_status_ope as id_status_ope, 
					descripcion as descripcion 
				from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_status 
				where id_status_ope = $id_status";
		
        $this->respuesta = $conexion->consultar($sql)
 			or die("No se pudo consultar el Estatus.");
		
		$status = array();
        $temparray = $this->respuesta->buscar_fila();
			$status[0] = $temparray['id_status_ope'];
			$status[1] = strtoupper($temparray['descripcion']);
		
        $conexion->desconectar();
        return $status;
    }
	
	
	// =================================================================================================================
    //	FUNCION - CONSULTAR REGISTRO OTROS ENTES POR ID
    // =================================================================================================================
	
    public function consultar_registro_por_id( $id_registro ) {
        $conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_roitc'] );
		
		$sql = "select id_inscr_reg as id_inscr_reg, 
					descripcion as descripcion 
				from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_inscr_reg 
				where id_inscr_reg = $id_registro";
		
		$this->respuesta = $conexion->consultar($sql) 
			or die("No se pudo consultar el Registro.");
		
		$registro = array();
		$temparray = $this->respuesta->buscar_fila();
			$registro[0] = $temparray['id_inscr_reg'];
			$registro[1] = strtoupper($temparray['descripcion']);
		
		$conexion->desconectar();
		return $registro;
    }
	
	
	// =================================================================================================================
    //	FUNCION - CONSULTAR TIPO DE CARGA POR ID
    // =================================================================================================================
	
    public function consultar_tipo_carga_por_id( $id_tipo_carga ) {
        $conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_roitc'] );
		
		$sql = "select id_tipo_car as id_tipo_car, 
					descripcion as descripcion 
				from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_tipo_car 
				where id_tipo_car = $id_tipo_carga";
		
        $this->respuesta = $conexion->consultar($sql) 
			or die("No se pudo consultar el Tipo de Carga.");
        
		$tipo_carga = array();
		$temparray = $this->respuesta->buscar_fila();
			$tipo_carga[0] = $temparray['id_tipo_car'];
			$tipo_carga[1] = strtoupper($temparray['descripcion']);
		
        $conexion->desconectar();
        return $tipo_carga;
    }
	
	
	// =================================================================================================================
    //	FUNCION - CONSULTAR SUBTIPO DE CARGA POR ID
    // =================================================================================================================
	
    public function consultar_subtipo_carga_por_id( $id_subtipo_carga ) {
        $conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_roitc'] );
		
		$sql = "select id_subti_car as id_subti_car, 
					descripcion as descripcion 
				from ".$_SESSION['db_roitc'].$_SESSION['schema_db'].".$this->troitc_subti_car 
				where id_subti_car = $id_subtipo_carga";
		
        $this->respuesta = $conexion->consultar($sql) 
			or die("No se pudo consultar el Subtipo de Carga.");
        
		$subtipo_carga = array(); 
		$temparray = $this->respuesta->buscar_fila();
			$subtipo_carga[0] = $temparray['id_subti_car'];
			$subtipo_carga[1] = strtoupper($temparray['descripcion']);
		
        $conexion->desconectar();
        return $subtipo_carga;
    }
}
?>